/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.uniminuto.edu.videominuto.entities;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;

/**
 *
 * @author Juan
 */
@Embeddable
public class TransaccionPK implements Serializable {
    @Basic(optional = false)
    @NotNull
    @Column(name = "id_transaccion")
    private int idTransaccion;
    @Basic(optional = false)
    @NotNull
    @Column(name = "id_cliente")
    private int idCliente;
    @Basic(optional = false)
    @NotNull
    @Column(name = "id_tipo_transaccion")
    private int idTipoTransaccion;
    @Basic(optional = false)
    @NotNull
    @Column(name = "id_video")
    private int idVideo;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fecha_inicio")
    @Temporal(TemporalType.DATE)
    private Date fechaInicio;

    public TransaccionPK() {
    }

    public TransaccionPK(int idTransaccion, int idCliente, int idTipoTransaccion, int idVideo, Date fechaInicio) {
        this.idTransaccion = idTransaccion;
        this.idCliente = idCliente;
        this.idTipoTransaccion = idTipoTransaccion;
        this.idVideo = idVideo;
        this.fechaInicio = fechaInicio;
    }

    public int getIdTransaccion() {
        return idTransaccion;
    }

    public void setIdTransaccion(int idTransaccion) {
        this.idTransaccion = idTransaccion;
    }

    public int getIdCliente() {
        return idCliente;
    }

    public void setIdCliente(int idCliente) {
        this.idCliente = idCliente;
    }

    public int getIdTipoTransaccion() {
        return idTipoTransaccion;
    }

    public void setIdTipoTransaccion(int idTipoTransaccion) {
        this.idTipoTransaccion = idTipoTransaccion;
    }

    public int getIdVideo() {
        return idVideo;
    }

    public void setIdVideo(int idVideo) {
        this.idVideo = idVideo;
    }

    public Date getFechaInicio() {
        return fechaInicio;
    }

    public void setFechaInicio(Date fechaInicio) {
        this.fechaInicio = fechaInicio;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (int) idTransaccion;
        hash += (int) idCliente;
        hash += (int) idTipoTransaccion;
        hash += (int) idVideo;
        hash += (fechaInicio != null ? fechaInicio.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof TransaccionPK)) {
            return false;
        }
        TransaccionPK other = (TransaccionPK) object;
        if (this.idTransaccion != other.idTransaccion) {
            return false;
        }
        if (this.idCliente != other.idCliente) {
            return false;
        }
        if (this.idTipoTransaccion != other.idTipoTransaccion) {
            return false;
        }
        if (this.idVideo != other.idVideo) {
            return false;
        }
        if ((this.fechaInicio == null && other.fechaInicio != null) || (this.fechaInicio != null && !this.fechaInicio.equals(other.fechaInicio))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "co.uniminuto.edu.videominuto.entities.TransaccionPK[ idTransaccion=" + idTransaccion + ", idCliente=" + idCliente + ", idTipoTransaccion=" + idTipoTransaccion + ", idVideo=" + idVideo + ", fechaInicio=" + fechaInicio + " ]";
    }
    
}
